package com.bmw.newbabytimer;

import android.widget.ImageView;

import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.QueueProcessingType;

public class LocalFileImageLoader {

    private static ImageLoader sImageLoader;

    private static void init() {
        sImageLoader = ImageLoader.getInstance();

        ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(BMWApplication.get())
                .discCacheFileNameGenerator(new Md5FileNameGenerator())//
                .threadPriority(Thread.NORM_PRIORITY) //
                .memoryCacheSize(10 * 1024 * 1024)//
                .tasksProcessingOrder(QueueProcessingType.FIFO)//
                .build();
        ImageLoader.getInstance().init(config);

    }

    /**
     * @param container
     * @param uri
     */
    public static void display(ImageView container, String uri) {
        if (sImageLoader == null) {
            init();
        }
        sImageLoader.displayImage(uri, container);
    }

    /**
     * @param container
     * @param uri
     */
    public static void display(ImageView container, String uri, DisplayImageOptions options) {
        if (sImageLoader == null) {
            init();
        }
        sImageLoader.displayImage(uri, container, options);
    }

    public static void clearMemoryCache() {
        sImageLoader.clearMemoryCache();
        System.gc();
    }

    public static void pause() {
        if (sImageLoader == null || !sImageLoader.isInited()) {
            return;
        }
        sImageLoader.pause();
    }

    public static void resume() {
        if (sImageLoader == null || !sImageLoader.isInited()) {
            return;
        }
        sImageLoader.resume();
    }
}
